##### 23.3.3.3 GDB Scheme Data Types

The values exposed by gdb to Guile are known as gdb objects. There are several kinds of gdb object, and each is disjoint from all other types known to Guile.

— Scheme Procedure: gdb-object-kind object

> Return the kind of the gdb object, e.g., `<gdb:breakpoint>`, as a symbol.

gdb defines the following object types:

`<gdb:arch>`
  See Architectures In Guile.
`<gdb:block>`
  See Blocks In Guile.
`<gdb:block-symbols-iterator>`
  See Blocks In Guile.
`<gdb:breakpoint>`
  See Breakpoints In Guile.
`<gdb:command>`
  See Commands In Guile.
`<gdb:exception>`
  See Guile Exception Handling.
`<gdb:frame>`
  See Frames In Guile.
`<gdb:iterator>`
  See Iterators In Guile.
`<gdb:lazy-string>`
  See Lazy Strings In Guile.
`<gdb:objfile>`
  See Objfiles In Guile.
`<gdb:parameter>`
  See Parameters In Guile.
`<gdb:pretty-printer>`
  See Guile Pretty Printing API.
`<gdb:pretty-printer-worker>`
  See Guile Pretty Printing API.
`<gdb:progspace>`
  See Progspaces In Guile.
`<gdb:symbol>`
  See Symbols In Guile.
`<gdb:symtab>`
  See Symbol Tables In Guile.
`<gdb:sal>`
  See Symbol Tables In Guile.
`<gdb:type>`
  See Types In Guile.
`<gdb:field>`
  See Types In Guile.
`<gdb:value>`
  See Values From Inferior In Guile.

The following gdb objects are managed internally so that the Scheme function `eq?` may be applied to them.

`<gdb:arch>`
`<gdb:block>`
`<gdb:breakpoint>`
`<gdb:frame>`
`<gdb:objfile>`
`<gdb:progspace>`
`<gdb:symbol>`
`<gdb:symtab>`
`<gdb:type>`